package com.baselibrary.bean;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 动态详情
 */
public class TimelineInfoData implements Serializable {


    private boolean success;
    private int code;
    private ClientTimeline data;

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public ClientTimeline getData() {
        return data;
    }

    public void setData(ClientTimeline data) {
        this.data = data;
    }

    public static class ClientTimeline extends Timeline implements Serializable {
        private List<String> tags;
        private SimpleUser user;
        private boolean supported;//点过支持
        private boolean favorited;//点过收藏
        private String shareToken;
        private String searchWord;//没有富文本
        private GroupDetailBean groupDetail;
        private List<Integer> atMemberIds;
        private List<AtMembersBean> atMembers;
        private List<SimpleUser> supportUsers;
        private String route;
        private int recommendType = 0;//0-普通动态，1-推荐动态，2-置顶动态，3-固定位置动态"
        public static final int RECOMMEND_TYPE = 1;
        public static final int TOPPING_TYPE = 2;

        public int getRecommendType() {
            return recommendType;
        }

        public void setRecommendType(int recommendType) {
            this.recommendType = recommendType;
        }

        public String getRoute() {
            return route;
        }

        public void setRoute(String route) {
            this.route = route;
        }

        public GroupDetailBean getGroupDetail() {
            return groupDetail;
        }

        public void setGroupDetail(GroupDetailBean groupDetail) {
            this.groupDetail = groupDetail;
        }

        public List<Integer> getAtMemberIds() {
            return atMemberIds;
        }

        public void setAtMemberIds(List<Integer> atMemberIds) {
            this.atMemberIds = atMemberIds;
        }

        public List<AtMembersBean> getAtMembers() {
            return atMembers;
        }

        public void setAtMembers(List<AtMembersBean> atMembers) {
            this.atMembers = atMembers;
        }

        private ForwardTimelineBean forwardTimeline;

        public ForwardTimelineBean getForwardTimeline() {
            return forwardTimeline;
        }

        public void setForwardTimeline(ForwardTimelineBean forwardTimeline) {
            this.forwardTimeline = forwardTimeline;
        }

        public static class ForwardTimelineBean implements Serializable {

            private int id;
            private int uid;
            private int showType;
            private String content;
            private int provinceId;
            private int cityId;
            private int districtId;
            private String cover;
            private String address;
            private double longitude;
            private double latitude;
            private String video;
            private int status;
            private int supportNum;
            private int commentNum;
            private int favoriteNum;
            private int forwardNum;
            private int forwardId;
            private int wineryId;
            private long ctime;
            private long utime;
            private UserBeanX user;
            private List<String> images;
            private List<Integer> tagIds;
            private List<String> tags;

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public int getUid() {
                return uid;
            }

            public void setUid(int uid) {
                this.uid = uid;
            }

            public int getShowType() {
                return showType;
            }

            public void setShowType(int showType) {
                this.showType = showType;
            }

            public String getContent() {
                return content;
            }

            public void setContent(String content) {
                this.content = content;
            }

            public int getProvinceId() {
                return provinceId;
            }

            public void setProvinceId(int provinceId) {
                this.provinceId = provinceId;
            }

            public int getCityId() {
                return cityId;
            }

            public void setCityId(int cityId) {
                this.cityId = cityId;
            }

            public int getDistrictId() {
                return districtId;
            }

            public void setDistrictId(int districtId) {
                this.districtId = districtId;
            }

            public String getCover() {
                return cover;
            }

            public void setCover(String cover) {
                this.cover = cover;
            }

            public String getAddress() {
                return address;
            }

            public void setAddress(String address) {
                this.address = address;
            }

            public double getLongitude() {
                return longitude;
            }

            public void setLongitude(double longitude) {
                this.longitude = longitude;
            }

            public double getLatitude() {
                return latitude;
            }

            public void setLatitude(double latitude) {
                this.latitude = latitude;
            }

            public String getVideo() {
                return video;
            }

            public void setVideo(String video) {
                this.video = video;
            }

            public int getStatus() {
                return status;
            }

            public void setStatus(int status) {
                this.status = status;
            }

            public int getSupportNum() {
                return supportNum;
            }

            public void setSupportNum(int supportNum) {
                this.supportNum = supportNum;
            }

            public int getCommentNum() {
                return commentNum;
            }

            public void setCommentNum(int commentNum) {
                this.commentNum = commentNum;
            }

            public int getFavoriteNum() {
                return favoriteNum;
            }

            public void setFavoriteNum(int favoriteNum) {
                this.favoriteNum = favoriteNum;
            }

            public int getForwardNum() {
                return forwardNum;
            }

            public void setForwardNum(int forwardNum) {
                this.forwardNum = forwardNum;
            }

            public int getForwardId() {
                return forwardId;
            }

            public void setForwardId(int forwardId) {
                this.forwardId = forwardId;
            }

            public int getWineryId() {
                return wineryId;
            }

            public void setWineryId(int wineryId) {
                this.wineryId = wineryId;
            }

            public long getCtime() {
                return ctime;
            }

            public void setCtime(long ctime) {
                this.ctime = ctime;
            }

            public long getUtime() {
                return utime;
            }

            public void setUtime(long utime) {
                this.utime = utime;
            }

            public UserBeanX getUser() {
                return user;
            }

            public void setUser(UserBeanX user) {
                this.user = user;
            }

            public List<String> getImages() {
                return images;
            }

            public void setImages(List<String> images) {
                this.images = images;
            }

            public List<Integer> getTagIds() {
                return tagIds;
            }

            public void setTagIds(List<Integer> tagIds) {
                this.tagIds = tagIds;
            }

            public List<String> getTags() {
                return tags;
            }

            public void setTags(List<String> tags) {
                this.tags = tags;
            }

            public static class UserBeanX implements Serializable {
                /**
                 * id : 819
                 * userType : 0
                 * userRank : 0
                 * name : 酣友5955207
                 * icon : http://39.107.247.82:30001/storage/441*502*73f53d3fbe4ed9161a746bc7773cfa7f.jpg
                 * phone : 19920026487
                 * sex : 0
                 * focusFans : false
                 * friends : 0
                 * ctime : 0
                 */

                private int id;
                private int userType;
                private int userRank;
                private String name;
                private String icon;
                private String phone;
                private int sex;
                private boolean focusFans;
                private int friends;
                private long ctime;

                public int getId() {
                    return id;
                }

                public void setId(int id) {
                    this.id = id;
                }

                public int getUserType() {
                    return userType;
                }

                public void setUserType(int userType) {
                    this.userType = userType;
                }

                public int getUserRank() {
                    return userRank;
                }

                public void setUserRank(int userRank) {
                    this.userRank = userRank;
                }

                public String getName() {
                    return name;
                }

                public void setName(String name) {
                    this.name = name;
                }

                public String getIcon() {
                    return icon;
                }

                public void setIcon(String icon) {
                    this.icon = icon;
                }

                public String getPhone() {
                    return phone;
                }

                public void setPhone(String phone) {
                    this.phone = phone;
                }

                public int getSex() {
                    return sex;
                }

                public void setSex(int sex) {
                    this.sex = sex;
                }

                public boolean isFocusFans() {
                    return focusFans;
                }

                public void setFocusFans(boolean focusFans) {
                    this.focusFans = focusFans;
                }

                public int getFriends() {
                    return friends;
                }

                public void setFriends(int friends) {
                    this.friends = friends;
                }

                public long getCtime() {
                    return ctime;
                }

                public void setCtime(long ctime) {
                    this.ctime = ctime;
                }
            }
        }

        private int updateStatus; //是否课编辑 0 可 1 不可

//        private ClientForwardTimeline forwardTimeline;//转发timeline

        private int rewardScore;

        public List<String> getTags() {
            return tags;
        }

        public void setTags(List<String> tags) {
            this.tags = tags;
        }

        public SimpleUser getUser() {
            return user;
        }

        public void setUser(SimpleUser user) {
            this.user = user;
        }

        public boolean isSupported() {
            return supported;
        }

        public void setSupported(boolean supported) {
            this.supported = supported;
        }

        public boolean isFavorited() {
            return favorited;
        }

        public void setFavorited(boolean favorited) {
            this.favorited = favorited;
        }

        public String getShareToken() {
            return shareToken;
        }

        public void setShareToken(String shareToken) {
            this.shareToken = shareToken;
        }

        public String getSearchWord() {
            return searchWord;
        }

        public void setSearchWord(String searchWord) {
            this.searchWord = searchWord;
        }

        public List<SimpleUser> getSupportUsers() {
            return supportUsers;
        }

        public void setSupportUsers(List<SimpleUser> supportUsers) {
            this.supportUsers = supportUsers;
        }

        public int getUpdateStatus() {
            return updateStatus;
        }

        public void setUpdateStatus(int updateStatus) {
            this.updateStatus = updateStatus;
        }

//        public ClientForwardTimeline getForwardTimeline() {
//            return forwardTimeline;
//        }
//
//        public void setForwardTimeline(ClientForwardTimeline forwardTimeline) {
//            this.forwardTimeline = forwardTimeline;
//        }

        public int getRewardScore() {
            return rewardScore;
        }

        public void setRewardScore(int rewardScore) {
            this.rewardScore = rewardScore;
        }
    }

    public static class GroupDetailBean implements Serializable {

        private static final long serialVersionUID = 7258140452672679053L;
        private int id;
        private String title;
        private String desc;
        private String address;
        private String cover;
        private long ctime;
        private long utime;
        private int status;
        private String notice;
        private int groupRecommendStatus;
        private int groupRecommendPlace;
        private int virtualMember;
        private int groupMemberCount;
        private Object groupHost;
        private boolean hasJoinedGroup;
        private boolean host;
        private List<Object> socialGatheringList;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        public String getCover() {
            return cover;
        }

        public void setCover(String cover) {
            this.cover = cover;
        }

        public long getCtime() {
            return ctime;
        }

        public void setCtime(long ctime) {
            this.ctime = ctime;
        }

        public long getUtime() {
            return utime;
        }

        public void setUtime(long utime) {
            this.utime = utime;
        }

        public int getStatus() {
            return status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

        public String getNotice() {
            return notice;
        }

        public void setNotice(String notice) {
            this.notice = notice;
        }

        public int getGroupRecommendStatus() {
            return groupRecommendStatus;
        }

        public void setGroupRecommendStatus(int groupRecommendStatus) {
            this.groupRecommendStatus = groupRecommendStatus;
        }

        public int getGroupRecommendPlace() {
            return groupRecommendPlace;
        }

        public void setGroupRecommendPlace(int groupRecommendPlace) {
            this.groupRecommendPlace = groupRecommendPlace;
        }

        public int getVirtualMember() {
            return virtualMember;
        }

        public void setVirtualMember(int virtualMember) {
            this.virtualMember = virtualMember;
        }

        public int getGroupMemberCount() {
            return groupMemberCount;
        }

        public void setGroupMemberCount(int groupMemberCount) {
            this.groupMemberCount = groupMemberCount;
        }

        public Object getGroupHost() {
            return groupHost;
        }

        public void setGroupHost(Object groupHost) {
            this.groupHost = groupHost;
        }

        public boolean isHasJoinedGroup() {
            return hasJoinedGroup;
        }

        public void setHasJoinedGroup(boolean hasJoinedGroup) {
            this.hasJoinedGroup = hasJoinedGroup;
        }

        public boolean isHost() {
            return host;
        }

        public void setHost(boolean host) {
            this.host = host;
        }

        public List<Object> getSocialGatheringList() {
            return socialGatheringList;
        }

        public void setSocialGatheringList(List<Object> socialGatheringList) {
            this.socialGatheringList = socialGatheringList;
        }
    }

    public static class AtMembersBean implements Serializable {
        /**
         * id : 9605
         * userType : 0
         * userRank : 0
         * name : 酣友1529186
         * icon : http://39.107.247.82:30002/storage/270*270*ee02f29835545f66517a53a99bf67f8e.jpg
         * phone : 15726670915
         * sex : 0
         * focusFans : false
         * alternate : 0
         * isChannel : 0
         * isForum : 0
         * isWinery : 0
         * friends : 0
         * ctime : 0
         */

        private int id;
        private int userType;
        private int userRank;
        private String name;
        private String icon;
        private String phone;
        private int sex;
        private boolean focusFans;
        private int alternate;
        private int isChannel;
        private int isForum;
        private int isWinery;
        private int friends;
        private long ctime;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getUserType() {
            return userType;
        }

        public void setUserType(int userType) {
            this.userType = userType;
        }

        public int getUserRank() {
            return userRank;
        }

        public void setUserRank(int userRank) {
            this.userRank = userRank;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        public int getSex() {
            return sex;
        }

        public void setSex(int sex) {
            this.sex = sex;
        }

        public boolean isFocusFans() {
            return focusFans;
        }

        public void setFocusFans(boolean focusFans) {
            this.focusFans = focusFans;
        }

        public int getAlternate() {
            return alternate;
        }

        public void setAlternate(int alternate) {
            this.alternate = alternate;
        }

        public int getIsChannel() {
            return isChannel;
        }

        public void setIsChannel(int isChannel) {
            this.isChannel = isChannel;
        }

        public int getIsForum() {
            return isForum;
        }

        public void setIsForum(int isForum) {
            this.isForum = isForum;
        }

        public int getIsWinery() {
            return isWinery;
        }

        public void setIsWinery(int isWinery) {
            this.isWinery = isWinery;
        }

        public int getFriends() {
            return friends;
        }

        public void setFriends(int friends) {
            this.friends = friends;
        }

        public long getCtime() {
            return ctime;
        }

        public void setCtime(long ctime) {
            this.ctime = ctime;
        }
    }

    public static class SimpleUser implements Serializable {
        /**
         * 用户ID
         */
        private int id;
        /**
         * 用户类型
         */
        private int userType;
        /**
         * 用户身份
         */
        private int userRank;
        /**
         * 用户名字
         */
        private String name;
        /**
         * 用户头像
         */
        private String icon;
        /**
         * 用户手机号
         */
        private String phone;
        /**
         * 用户性别
         */
        private int sex;
        /**
         * 是否关注
         */
        private boolean focusFans;
        private int isFans;

        public int getIsFans() {
            return isFans;
        }

        public void setIsFans(int isFans) {
            this.isFans = isFans;
        }

        public boolean isFavorited() {
            return favorited;
        }

        public void setFavorited(boolean favorited) {
            this.favorited = favorited;
        }

        private boolean favorited;

        public int getIsChannel() {
            return isChannel;
        }

        public void setIsChannel(int isChannel) {
            this.isChannel = isChannel;
        }

        public int getIsForum() {
            return isForum;
        }

        public void setIsForum(int isForum) {
            this.isForum = isForum;
        }

        public int getIsWinery() {
            return isWinery;
        }

        public void setIsWinery(int isWinery) {
            this.isWinery = isWinery;
        }

        private int isChannel;

        private int isForum;

        private int isWinery;

        public int getSupportNum() {
            return supportNum;
        }

        public void setSupportNum(int supportNum) {
            this.supportNum = supportNum;
        }

        private int supportNum;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getUserType() {
            return userType;
        }

        public void setUserType(int userType) {
            this.userType = userType;
        }

        public int getUserRank() {
            return userRank;
        }

        public void setUserRank(int userRank) {
            this.userRank = userRank;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public String getPhone() {
            return phone;
        }

        public void setPhone(String phone) {
            this.phone = phone;
        }

        public int getSex() {
            return sex;
        }

        public void setSex(int sex) {
            this.sex = sex;
        }

        public boolean isFocusFans() {
            return focusFans;
        }

        public void setFocusFans(boolean focusFans) {
            this.focusFans = focusFans;
        }
    }

    public static class Timeline implements Serializable {


        //@ApiModelProperty("动态id")
        private long id;

        /**
         *
         */
        //@ApiModelProperty("用户id")
        private long uid;

        /**
         * 展示类似（文章，普通，视频，音频、微信朋友圈）
         */
        //@ApiModelProperty("展示类似（文章，普通，视频，音频、微信朋友圈）")
        private int showType;

        //@ApiModelProperty("标题")
        private String title; //标题

        //@ApiModelProperty("来源")
        private String tagCategoryName; //来源

        //@ApiModelProperty("描述")
        private String desc;  //描述

        //@ApiModelProperty("内容")
        private String content;  //内容

        //@ApiModelProperty("所属省ID")
        private long provinceId;//所属省ID

        //@ApiModelProperty("所属城市ID")
        private long cityId;//所属城市ID

        //@ApiModelProperty("所属市，区ID")
        private long districtId;//所属市，区ID

        //@ApiModelProperty("封面")
        private String cover;

        //@ApiModelProperty("详细地址")
        private String address;

        private double longitude; //经度 0-180
        private double latitude; //维度 0-90

        //@ApiModelProperty("图片列表")
        //@HyperspaceColumn(isJson = true)
        private List<String> images = new ArrayList<>();//#v500# ^nn^

        //@ApiModelProperty("视频")
        private String video;

        //@ApiModelProperty("音频")
        private String voice;

        //@ApiModelProperty("状态")
        private int status;//状态

        //@ApiModelProperty("点赞数")
        private int supportNum;//点赞数

        //@ApiModelProperty("评论数")
        private int commentNum;//评论数

        //@ApiModelProperty("收藏数量")
        private int favoriteNum;//收藏数量

        //@ApiModelProperty("转发数量")
        private int forwardNum;

        // @ApiModelProperty("转发动态id")
        private long forwardId;

        //@ApiModelProperty("审核失败原因")
        private String checkReson;//审核失败原因

        //@ApiModelProperty("话题ids")
        private List<Long> tagIds = new ArrayList<>();//#v500# ^nn^

        //@ApiModelProperty("备注")
        private String ext;

        //@ApiModelProperty("酒窖ID")
        private long wineryId;

        private Long wineryCode;
        private String wineryName;

        //@ApiModelProperty("创建时间")
        private long ctime;

        //@ApiModelProperty("修改时间")
        private long utime;
        //
        private int outForwardNum;

        public String getWineryName() {
            return wineryName;
        }

        public void setWineryName(String wineryName) {
            this.wineryName = wineryName;
        }

        public int getOutForwardNum() {
            return outForwardNum;
        }

        public void setOutForwardNum(int outForwardNum) {
            this.outForwardNum = outForwardNum;
        }

        public long getId() {
            return id;
        }

        public void setId(long id) {
            this.id = id;
        }

        public long getUid() {
            return uid;
        }

        public void setUid(long uid) {
            this.uid = uid;
        }

        public int getShowType() {
            return showType;
        }

        public void setShowType(int showType) {
            this.showType = showType;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getTagCategoryName() {
            return tagCategoryName;
        }

        public void setSource(String tagCategoryName) {
            this.tagCategoryName = tagCategoryName;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getContent() {
            return content;
        }

        public void setContent(String content) {
            this.content = content;
        }

        public long getProvinceId() {
            return provinceId;
        }

        public void setProvinceId(long provinceId) {
            this.provinceId = provinceId;
        }

        public long getCityId() {
            return cityId;
        }

        public void setCityId(long cityId) {
            this.cityId = cityId;
        }

        public long getDistrictId() {
            return districtId;
        }

        public void setDistrictId(long districtId) {
            this.districtId = districtId;
        }

        public String getCover() {
            return cover;
        }

        public void setCover(String cover) {
            this.cover = cover;
        }

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        public double getLongitude() {
            return longitude;
        }

        public void setLongitude(double longitude) {
            this.longitude = longitude;
        }

        public double getLatitude() {
            return latitude;
        }

        public void setLatitude(double latitude) {
            this.latitude = latitude;
        }

        public List<String> getImages() {
            return images;
        }

        public void setImages(List<String> images) {
            this.images = images;
        }

        public String getVideo() {
            return video;
        }

        public void setVideo(String video) {
            this.video = video;
        }

        public String getVoice() {
            return voice;
        }

        public void setVoice(String voice) {
            this.voice = voice;
        }

        public int getStatus() {
            return status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

        public int getSupportNum() {
            return supportNum;
        }

        public void setSupportNum(int supportNum) {
            if (supportNum < 0)
                supportNum = 0;
            this.supportNum = supportNum;
        }

        public int getCommentNum() {
            return commentNum;
        }

        public void setCommentNum(int commentNum) {
            this.commentNum = commentNum;
        }

        public int getFavoriteNum() {
            return favoriteNum;
        }

        public void setFavoriteNum(int favoriteNum) {
            if (favoriteNum < 0)
                favoriteNum = 0;
            this.favoriteNum = favoriteNum;
        }

        public int getForwardNum() {
            return forwardNum;
        }

        public void setForwardNum(int forwardNum) {
            this.forwardNum = forwardNum;
        }

        public long getForwardId() {
            return forwardId;
        }

        public void setForwardId(long forwardId) {
            this.forwardId = forwardId;
        }

        public String getCheckReson() {
            return checkReson;
        }

        public void setCheckReson(String checkReson) {
            this.checkReson = checkReson;
        }

        public List<Long> getTagIds() {
            return tagIds;
        }

        public void setTagIds(List<Long> tagIds) {
            this.tagIds = tagIds;
        }

        public String getExt() {
            return ext;
        }

        public void setExt(String ext) {
            this.ext = ext;
        }

        public long getWineryId() {
            return wineryId;
        }

        public void setWineryId(long wineryId) {
            this.wineryId = wineryId;
        }

        public long getCtime() {
            return ctime;
        }

        public void setCtime(long ctime) {
            this.ctime = ctime;
        }

        public long getUtime() {
            return utime;
        }

        public void setUtime(long utime) {
            this.utime = utime;
        }

        public Long getWineryCode() {
            return wineryCode;
        }

        public void setWineryCode(Long wineryCode) {
            this.wineryCode = wineryCode;
        }
    }


}
